package com.his.service;

import com.his.commons.core.dto.PageInfo;
import com.his.commons.core.exception.HisException;
import com.his.controller.form.ModifyRoleForm;
import com.his.controller.form.NewRoleForm;
import com.his.controller.form.PageForm;
import com.his.controller.info.RoleInfo;
import com.his.model.Role;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 梅津铧
 * @since 2022-03-22
 */
public interface RoleService extends IService<Role> {

    /**
     * 注册角色
     * @param newRoleForm  新角色信息
     */
    boolean increaseRole(NewRoleForm newRoleForm) throws HisException;

    /**
     * 更新角色信息
     * @param modifyRoleForm
     */
    boolean modifyRole(ModifyRoleForm modifyRoleForm) throws HisException;

    /**
     * 获取角色信息
     * @param pageForm 分页信息
     */
    PageInfo<RoleInfo> obtainRoles(PageForm pageForm) throws HisException;

    /**
     * 注销角色
     * @param id  角色id
     */
    boolean logoutRole(Integer id) throws HisException;

    /**
     * 获取所有角色信息
     */
    List<RoleInfo> obtainAllRole() throws HisException;

    /**
     * 根据角色名查询角色信息
     * @param condition 角色名
     * @return 角色信息
     */
    List<RoleInfo> obtainOneRole(String condition) throws HisException;
}
